import EventEmitter from "events";

const emitter = new EventEmitter();

/**
 * 事件工具，只是重写了一遍EventEmitter，方便调用
 */
export default class EventsUtils {
    /**
     * 添加监听
     * @param event {String} 事件名称
     * @param listener {Function} 回调方法
     * @return {*}
     */
    static addListener(event, listener){
        return emitter.addListener(event, listener);
    }

    /**
     * 删除监听
     * @param event {String} 事件名称
     * @param listener {Function} 回调方法
     * @return {*}
     */
    static removeListener(event, listener){
        return emitter.removeListener(event, listener);
    }

    /**
     * 监听一次
     * @param event {String} 事件名称
     * @param listener {Function} 回调方法
     * @return {*}
     */
    static onece(event, listener){
        return emitter.onece(event, listener);
    }

    /**
     * 添加监听
     * @param event {String} 事件名称
     * @param listener {Function} 回调方法
     * @return {*}
     */
    static on(event, listener){
        return emitter.on(event, listener);
    }

    /**
     * 触发事件
     * @param event {String} 事件名称
     * @param args {...object} 参数
     * @return {*}
     */
    static emit(event, ...args){
        return emitter.emit(event, ...args);
    }
}
